#include <iostream>

using namespace std;
// 类模板成员函数类外实现
//能够掌握类模板中的成员函数类外实现

template<typename T, typename C>
class Person {
public:
    T name;
    C age;

    Person(T name, C age);//构造函数类内声明
    void showPerson();//成员函数类内声明
};

//构造函数类外实现
template<typename T, typename C>
Person<T, C>::Person(T name, C age) {
    this->name = name;
    this->age = age;
}

//成员函数类外实现
template<typename T, typename C>
void Person<T, C>::showPerson() {
    cout << "name:" << this->name << ",age:" << this->age << endl;
}

void test() {
    Person<string, int> p("tom", 20);
    p.showPerson();
}

int main() {
    test();
    return 0;
}